<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/12/20 0020
 * Time: 16:35
 */

namespace app\admin\model;


use app\admin\model\Order_log;
use app\admin\logic\State;
use think\Model;
use app\common\traits\Common;
use app\admin\logic\Order as Order_logic;

class Order extends Model
{
    use Common;

    protected $type = [
        'yctime' => 'timestamp:Y-m-d',//预产期
        'sjtime' => 'timestamp:Y-m-d',//收集日期
        'yypstime' => 'timestamp:Y-m-d H:i:s',//预约拍摄时间
        'qxpstime' => 'timestamp:Y-m-d',//取消拍摄时间
        'wdpstime' => 'timestamp:Y-m-d',//未到拍摄时间
        'zztime' => 'timestamp:Y-m-d H:i:s',//追踪时间
        'jdtime' => 'timestamp:Y-m-d H:i',//建单时间
        'cztime' => 'timestamp:Y-m-d H:i',//操作时间
        'yyfptime' => 'timestamp:Y-m-d H:i',//邀约分配时间
        'mdfptime' => 'timestamp:Y-m-d H:i',//门店分配时间
        'mdldtime' => 'timestamp:Y-m-d H:i',//门店领单时间
        'bbcstime' => 'timestamp:Y-m-d',//宝宝出生时间
        'lxtime' => 'timestamp:Y-m-d H:i',//联系时间
        'cjtime' => 'timestamp:Y-m-d H:i',//成交时间
        'lstime' => 'timestamp:Y-m-d H:i',//流失时间
        'wdcxtime' => 'timestamp:Y-m-d H:i',//未到持续时间
        'ddtime'=> 'timestamp:Y-m-d H:i',//实际到店时间
        'yyjdtime'=> 'timestamp:Y-m-d H:i:s',//预约进店时间
        'yytime'=> 'timestamp:Y-m-d H:i',//邀约时间
        'xptime'=> 'timestamp:Y-m-d H:i:s',//选片时间
        'xcpstime'=> 'timestamp:Y-m-d H:i:s',//下次拍摄时间
    ];

    //日志使用时间限制
    public $time = [
        'inputtime',
        'single_time',
        'single_time',
        'distribution_time',
        'invitation_time',
        'next_time',
        'make_time',
        'deal_time',
        'invalid_time',
        'wedding',
        'mdfptime',//门店分配时间
        'yctime',//预产期
        'sjtime',//收集日期
        'yypstime',//预约拍摄时间
        'qxpstime',//取消拍摄时间
        'wdpstime',//未到拍摄时间
        'zztime',//追踪时间
        'jdtime',//建单时间
        'cztime',//操作时间
        'yyfptime',//邀约分配时间
        'mdldtime',//门店领单时间
        'bbcstime',//宝宝出生时间
        'lxtime',//联系时间
        'cjtime',//成交时间
        'lstime',//流失时间
        'wdcxtime',//未到持续时间
        'ddtime',//实际到店时间
        'yyjdtime',//预约进店时间
        'yytime',//邀约时间
        'xptime',//选片时间
        'xcpstime',//下次拍摄时间
    ];

    /**
     * 订单状态获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getStateTextAttr($value, $data)
    {
        // 动态获取器
        $state_logic = new State();
        $status = $status = collect($state_logic->getAllStates())->where('status',1)->map(function ($item){
            $item['name'] = "<span class='btn' style='background-color:#{$item['bgcolor']} !important;padding: 3px 6px;color: #fff;'>{$item['name']}</span>";
            return $item;
        })->column('name', 'id');
        return $status[$data['state']];
    }

    /**
     * 订单状态获取器 前端列表专用
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getStatesTextAttr($value, $data)
    {
        // 动态获取器
        $state_logic = new State();
        $status = collect($state_logic->getAllStates())->where('status',1)->column('name', 'id');
        return $status[$data['state']];
    }
    /**
     * 订单状态字体颜色获取器
     * @param $value
     * @param $data
     * @return mixed
     * @author: Guo
     */
    public function getStateFontTextAttr($value, $data)
    {
        // 动态获取器
        $state_logic = new State();
        $status = collect($state_logic->getAllStates())->column('fontcolor', 'id');
        return $status[$data['state']];
    }

    /**
     * 订单状态背景颜色获取器
     * @param $value
     * @param $data
     * @return mixed
     * @author: Guo
     */
    public function getStateBgcolorTextAttr($value, $data)
    {
        // 动态获取器
        $state_logic = new State();
        $status = collect($state_logic->getAllStates())->column('bgcolor', 'id');
        return $status[$data['state']];
    }

    /**
     * 意向度获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getIntentionTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getIntention())->column('title', 'id');
        // 动态获取器
        // $status = Db::table('jtds_users')->cache(3600)->column('username', 'id');
        return $status[$data['intention']];
    }

    /**
     * 预算获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getBudgetTextAttr($value, $data)
    {
        // 静态获取器
        // $status = [ 1 => '3000-5000',2 => '5000-8000', 3 => '8000-10000', 4 => '10000以上'];
        // 动态获取器
        $status = collect(self::getCommonModel()->getBudget())->column('title', 'id');
        return $status[$data['budget']];
    }

    /**
     *预计拍摄时间获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getShotTimeTextAttr($value, $data)
    {
        // 静态获取器
        //$status = [ 1 => '抽奖',2 => '双11', 3 => '双12'];
        // 动态获取器
        $status = collect(self::getCommonModel()->getStimate())->column('title', 'id');
        return $status[$data['shot_time']];
    }

    /**
     *门店获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getMendianTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getStore())->column('name', 'id');
        // 动态获取器
        // $status = Db::table('jtds_users')->cache(3600)->column('username', 'id');
        return $status[$data['mendian']];
    }

    /**
     *门市获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getMenshiTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getAllUserInfo())->column('username', 'id');
        return $status[$data['menshi']];
    }

    /**
     *活动获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getActivityTextAttr($value, $data)
    {
        // 静态获取器
        //$status = [ 1 => '抽奖',2 => '双11', 3 => '双12'];
        // 动态获取器
        $status = collect(self::getCommonModel()->getAllActivity())->column('title', 'id');
        return $status[$data['activity']];
    }

    /**
     * 拍照类型获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getLeibieTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getLeibie())->column('title', 'id');
        // 动态获取器
        // $status = Db::table('jtds_users')->cache(3600)->column('username', 'id');
        return $status[$data['leibie']];
    }

    /**
     * 支付方式获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getPaymentTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getPayment())->column('title', 'id');
        return $status[$data['payment']];
    }

    /**
     * 渠道人员组获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getJdGroupTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getSonDepar(1))->column('name', 'id');
        return $status[$data['single_group']];
    }

    /**
     * 渠道人员获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getQdkfTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getAllUserInfo())->column('username', 'id');
        return $status[$data['qdkf']];
    }

    /**
     * 建单部门获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getJdDeparTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getAllDepar())->column('name', 'id');
        return $status[$data['jd_depar']];
    }

    /**
     * 建单人员获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getJdryTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getAllUserInfo())->column('username', 'id');
        return $status[$data['jdry']];
    }

    /**
     * 邀约人员所属组获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getYykfGroupTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getSonDepar(3))->column('name', 'id');
        return $status[$data['yykf_group']];
    }

    /**
     * 邀约人员获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getYykfTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getAllUserInfo())->column('username', 'id');
        return $status[$data['yykf']];
    }

    /**
     * 渠道图片获取器
     * @param $value
     * @param $data
     * @return mixed
     * @author: Guo
     */
    public function getChannelPathTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getQudao())->column('path', 'id');
        return $status[$data['channel']];
    }

    /**
     * 渠道获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getChannelTextAttr($value, $data)
    {
        // 动态获取器
        $status = collect(self::getCommonModel()->getQudao())->column('title', 'id');
        return $status[$data['channel']];
    }

    /**
     * 来源获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getSourceTextAttr($value, $data)
    {
        // 动态获取器
        $status = collect(self::getCommonModel()->getChennelInSource())->column('title', 'id');
        return $status[$data['source']];
    }

    /**
     *建单类型获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getAddtypeTextAttr($value, $data)
    {
        // 静态获取器
        $status = [ 1 => '渠道建单',2 => '转介绍建单',3=>'导入客资'];
        // 动态获取器
        //$status = collect(self::getCommonModel()->getInt_num())->column('title', 'id');
        return $status[$data['addtype']];
    }

    /**
     * 无需跟踪原因获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getTrackingTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getTracking())->column('title', 'id');
        // 动态获取器
        // $status = Db::table('jtds_users')->cache(3600)->column('username', 'id');
        return $status[$data['tracking']];
    }

    /**
     * 下次跟踪原因获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getTrackTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getTrack())->column('title', 'id');
        // 动态获取器
        // $status = Db::table('jtds_users')->cache(3600)->column('username', 'id');
        return $status[$data['track']];
    }

    /**
     * 到店流失原因获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getInstoreyyTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getInstore())->column('title', 'id');
        return $status[$data['instoreyy']];
    }

    /**
     * 未到流失原因获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getNostoreTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->noStore())->column('title', 'id');
        // 动态获取器
        // $status = Db::table('jtds_users')->cache(3600)->column('username', 'id');
        return $status[$data['nostore']];
    }

    /**
     * 拍摄方式获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getShotModeTextAttr($value, $data)
    {
        // 静态获取器
        $status = collect(self::getCommonModel()->getShotMode())->column('title', 'id');
        return $status[$data['shot_mode']];
    }

    /**
     * 摄影师获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getPhotoGrapherTextAttr($value, $data)
    {
        $status = collect(self::getCommonModel()->getUserByDeparId(6))->column('username', 'id');
        return $status[$data['photo_grapher']];
    }

    /**
     *根据名字找ID
     * @param $data
     * @return mixed
     * @author: Huang
     */
    public static function getInvitationGroupToint($data)
    {
        $status = collect(self::getCommonModel()->getSonDepar(3))->column('id', 'name');
        return $status[$data];
    }

    /**
     *宝宝性别获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getGenderBTextAttr($value, $data)
    {
        // 静态获取器
        $status = [ 0 => '女',1 => '男', 2 => ''];
        return $status[$data['gender_b']];
    }

    /**
     *添加顾客微信状态获取器
     * @param $value
     * @param $data
     * @return mixed
     */
    public function getJwxtypeTextAttr($value, $data)
    {
        // 静态获取器
        $status = [ 0 => '未加',1 => '已加'];
        return $status[$data['jwxtype']];
    }

}